package jfox.platform.datadict.bo;

import java.util.List;
import javax.ejb.EJB;
import javax.ejb.Local;
import javax.ejb.Stateless;

import jfox.platform.datadict.dao.DictCategoryDAO;
import jfox.platform.datadict.dao.DictItemDAO;
import jfox.platform.datadict.entity.DictCategory;
import jfox.platform.datadict.entity.DictItem;
import jfox.platform.infrastructure.DataAccessObject;
import jfox.platform.infrastructure.SuperBO;

@Stateless
@Local
public class DictItemBOBean extends SuperBO implements DictItemBO {
    @EJB
    DictItemDAO dictItemDAO;
    
    @EJB
    DictCategoryDAO dictCategoryDAO;   
    
	@Override
	public DataAccessObject getDataAccessObject() {
		return dictItemDAO;
	}

    public DictItem getDictItemById(long id){
    	return dictItemDAO.getDictItemById(id);     	
    }

    public List<DictItem> getDictItemsByCategoryCode(String categoryCode){
    	return dictItemDAO.getDictItemsByCategoryCode(categoryCode);    	
    }

    public List<DictItem> getAllDictItem() {
        return dictItemDAO.getAllDictItem();
    }

    public void deleteDictItem(long id) {
		DictItem dictItem = dictItemDAO.getDictItemById(id);
		DictCategory dictcategory = dictCategoryDAO.getCategoryByCode(dictItem.getCategoryCode());		
		dictItemDAO.deleteDictItem(id);
    	dictcategory.removeReference(dictItem);
    	dictCategoryDAO.updateCategory(dictcategory);
	}

    public void newDictItem(DictItem dictItem){
    	DictCategory dictcategory = dictCategoryDAO.getCategoryByCode(dictItem.getCategoryCode());
    	dictItemDAO.insertDictItem(dictItem);
    	dictcategory.addReference(dictItem);
    	dictCategoryDAO.updateCategory(dictcategory);
    }
    
    public void updateDictItem(DictItem dictItem){
    	dictItemDAO.updateDictItem(dictItem);
    }

}
